package com.kamistoat.meimeistore.order.feign;

import com.kamistoat.common.utils.R;
import com.kamistoat.meimeistore.order.vo.WareSkuLockVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@FeignClient("meimeistore-web-backstage-ware")
public interface WareFeignService {

    /**
     * 查询商品库存
     *
     * @param skuIdList skuId列表
     * @return R数据，一个Map<String,bool>型哈希表
     */
    @RequestMapping("meimeistoreware/waresku/hasStock")
    R hasStock(@RequestBody List<Long> skuIdList);


    /**
     * 锁定库存
     * @return
     */
    @PostMapping("meimeistoreware/waresku/lockStock")
    R orderLockStock(@RequestBody WareSkuLockVo wareSkuLockVo);

    /**
     * 支付成功。则释放被锁定的库存，真正扣减掉该库存
     * @param out_trade_no 订单SN
     */
    @GetMapping("meimeistoreware/waresku/successfullyPay")
    R handleSuccessPay(@RequestBody String out_trade_no);
}
